package main

//说说进程、线程、协程之间的区别？
//
//进程是资源的分配和调度的一个独立单元，而线程是CPU调度的基本单元；
//
//同一个进程中可以包括多个线程；
//
//进程结束后它拥有的所有线程都将销毁，而线程的结束不会影响同个进程中的其他线程的结束；
//
//线程共享整个进程的资源（寄存器、堆栈、上下文），一个进程至少包括一个线程；
//
//进程的创建调用fork或者vfork，而线程的创建调用pthread_create；
//
//线程中执行时一般都要进行同步和互斥，因为他们共享同一进程的所有资源；
//
//
//
//进程是资源分配的单位
//
//线程是操作系统调度的单位
//
//进程切换需要的资源很最大，效率很低
//线程切换需要的资源一般，效率一般
//协程切换任务资源很小，效率高
//多进程、多线程根据cpu核数不一样可能是并行的 也可能是并发的。协程的本质就是使用当前进程在不同的函数代码中切换执行，
//可以理解为并行。 协程是一个用户层面的概念，不同协程的模型实现可能是单线程，也可能是多线程。
//
//
//
//进程拥有自己独立的堆和栈，既不共享堆，亦不共享栈，进程由操作系统调度。（全局变量保存在堆中，局部变量及函数保存在栈中）
//
//线程拥有自己独立的栈和共享的堆，共享堆，不共享栈，线程亦由操作系统调度(标准线程是这样的)。
//
//协程和线程一样共享堆，不共享栈，协程由程序员在协程的代码里显示调度。
//
//一个应用程序一般对应一个进程，一个进程一般有一个主线程，还有若干个辅助线程，线程之间是平行运行的，
//在线程里面可以开启协程，让程序在特定的时间内运行。
//
//协程和线程的区别是：协程避免了无意义的调度，由此可以提高性能，但也因此，
//程序员必须自己承担调度的责任，同时，协程也失去了标准线程使用多CPU的能力。


func main() {

}
